1. Field of the Invention
The present invention relates to digital electronics, and more specifically, to data recovery schemes.
2. Description of the Prior Art
In data communications systems reliability of data transfer is very important. To this end, a typically used data recovery scheme is acknowledgement (ACK) of received data.
Referring to FIG. 1, assume that a data frame is to be transmitted from a first device 102 to a second device 104 in a prior art communications system 100. After the first device 102 transmits the data frame to the second device 104, the first device 102 waits for a reply from the second device 104. This reply includes an ACK frame and signifies that the data frame has been received correctly. During this waiting period, the first device 102 checks for a timeout. If the first device 102 detects a timeout, meaning that the ACK frame was likely not sent, the first device 102 will retry the transmission of the data frame and again wait for an ACK frame. This procedure is repeated until a retry limit is reached in which case the first device 102 gives up transmission of the data frame.
In this data recovery scheme, there is one situation that should be detected by the receiver, the second device 104. When the second device 104 correctly receives the data frame and properly replies with the ACK frame, there is a chance that the first device 102 does not receive the ACK frame. This can result from changes in medium (i.e. air) conditions, interference from other communications systems especially those that incapable of avoiding transmission collisions, channel interference from two pairs of devices sharing the same communications channel, or other phenomena. As mentioned, if the first device 102 does not receive the ACK frame, the first device 102 will retransmit the data frame and await another ACK frame. This is a duplicate transmission since the receiver device 104 has already correctly received the data frame yet confirmation of this has not been made. Thus, for efficiency, the receiver device 104 should perform duplicate detection of some sort so that the duplicate data frame can be ignored and a proper ACK frame can be sent out in response. Conventionally, duplicate detection is achieved in the receiver device 104 by a hardware or software procedure that records a transmitting device ID and transmission sequence number of received data frames and checks if a retry bit is set. If the retry bit is set, the procedure then compares the device ID and sequence number to those of a previously received frame, and if a match is determined, a duplicate frame is said to be detected.
When duplicate detection is implemented by software, duplicate frames exist in the lower-level hardware. Duplicate frames are not dropped until after comparison by a CPU at a relatively high level. This means that direct memory access (DMA) and CPU bandwidth are wasted, which has an overall effect on system performance and data throughput. In ultra-wideband (UWB) applications DMA and CPU bandwidth are quite limited due to a 480 Mbps throughput requirement. In modern systems, such as UWB where there may be several streams of different types (e.g. DRP and PCA), and thus a multitude of frames to undergo duplicate detection, the software approach becomes unwieldy.
Duplicate detection by hardware, on the other hand, is costly in storage elements required for storing the information to be compared (i.e. device ID and sequence number; or source ID, delivery ID, and sequence control in UWB).